// stdx/unicodex.rs
// CRITICAL: Unicode 支持示例（chars, grapheme 注意事项）。
// AUTO_COMMENT: 对于 grapheme clusters 推荐使用 unicode-segmentation crate。

#[allow(dead_code)]
pub fn stdx_examples_unicodex() {
    let s = "á🇨🇦"; // 包含组合字符与 emoji
    let chars: Vec<char> = s.chars().collect();
    let _ = chars.len();

    // CRITICAL: Unicode 标量值
    let unicode_scalar = 'a' as u32;

    // CRITICAL: 检查字符属性
    let is_alphanumeric = 'a'.is_alphanumeric();
    let is_control = '\n'.is_control();
    let is_numeric = '1'.is_numeric();

    // CRITICAL: Unicode 版本
    let unicode_version = char::UNICODE_VERSION;

    // CRITICAL: 字符编码长度
    let utf8_len = 'a'.len_utf8();
    let utf16_len = 'a'.len_utf16();

    // CRITICAL: 字符转义
    let escaped = 'a'.escape_default().to_string();
    let unicode_escaped = 'a'.escape_unicode().to_string();

    // CRITICAL: 字符分类
    let category = 'a'.general_category();

    let _ = (
        unicode_scalar,
        is_alphanumeric,
        is_control,
        is_numeric,
        unicode_version,
        utf8_len,
        utf16_len,
        escaped,
        unicode_escaped,
        category,
    );
}
